const express = require('express')

const app = express()

// 注册多个中间件
// app.get(路径, 中间件1, 中间件2, 中间件3)
// app.get('/home', (req, res, next) => {
//   console.log('match /home get middleware01')
//   next()
// }, (req, res, next) => {
//   console.log('match /home get middleware02')
//   next()
// }, (req, res, next) => {
//   console.log('match /home get middleware03')
//   next()
// }, (req, res, next) => {
//   console.log('match /home get middleware04')
//   res.end('多个中间件')
// })



// 注册两个实际请求的中间件
// 案例一: 用户登录的请求处理 /login post => username/password
// app.post('/login', (req, res, next) => {
//   // 1.获取本次请求过程中传递过来的json数据
//   let isLogin = false
//   req.on('data', (data) => {
//     const dataString = data.toString()
//     const dataInfo = JSON.parse(dataString)
//     if (dataInfo.username === 'lrq' && dataInfo.password === '123456') {
//       isLogin = true
//     }
//   })
//   req.on('end', () => {
//     if (isLogin) {
//       res.end('登录成功, 欢迎回来~')
//     } else {
//       res.end('登录失败, 请检测账号和密码是否正确~')
//     }
//   })
// })

// // 案例二: 注册用户的请求处理 /register post => username/password
// app.post('/register', (req, res, next) => {
//     // 1.获取本次请求过程中传递过来的json数据
//     let isRegister = false
//     req.on('data', (data) => {
//       const dataString = data.toString()
//       const dataInfo = JSON.parse(dataString)
//       // 查询数据库中该用户是否已经注册过
//       isRegister = false
//     })
  
//     req.on('end', () => {
//       if (isRegister) {
//         res.end('注册成功, 开始你的旅程~')
//       } else {
//         res.end('注册失败, 您输入的用户名被注册~')
//       }
//     })
// })



// 可以再次简写

// 这些繁琐的步骤 都可以用 express.json() 代替
// app.use((req, res, next) => {
//   if (req.headers['content-type'] === 'application/json') {
//     req.on('data', (data) => {
//       const jsonInfo = JSON.parse(data.toString())
//       req.body = jsonInfo
//     })

//     req.on('end', () => {
//       next()
//     })
//   } else {
//     next()
//   }
// })

// 直接使用express提供给我们的中间件
app.use(express.json())

// 注册两个实际请求的中间件  apipost测试时 都是json类型参数
// 案例一: 用户登录的请求处理 /login post => username/password
app.post('/login', (req, res, next) => {
  console.log(req.body)
  // 然后进行逻辑判断即可

  
})

// 案例二: 注册用户的请求处理 /register post => username/password
app.post('/register', (req, res, next) => {
  console.log(req.body)
})

app.listen(9000, () => {
  console.log('express服务器启动成功~')
})
